home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / tools / czesc_3 / nartest / source / nartest.s
Text File  |  1993-06-27  |  26KB  |  1,242 lines

  1. ;
  2. ; Narrator tester V1.01
  3. ; (c) 1993 by Jan Hagqvist
  4. ;
  5. ; V0.02  23-June-1993
  6. ; V0.03  24-June-1993
  7. ; V0.04  25-June-1993
  8. ; V1.00  26-June-1993
  9. ; V1.01  27-June-1993
  10. ;
  11.  
  12.  
  13.   XREF _LVOOpenLibrary
  14.   XREF _LVOCloseLibrary
  15.   XREF _LVOCreateMsgPort
  16.   XREF _LVODeleteMsgPort
  17.   XREF _LVOCreateIORequest
  18.   XREF _LVODeleteIORequest
  19.   XREF _LVOOpenDevice
  20.   XREF _LVOCloseDevice
  21.   XREF _LVODoIO
  22.   XREF _LVOOpenWindow
  23.   XREF _LVOCloseWindow
  24.   XREF _LVORefreshGList
  25.   XREF _LVOActivateGadget
  26.   XREF _LVOWaitPort
  27.   XREF _LVOGT_GetIMsg
  28.   XREF _LVOGT_ReplyIMsg
  29.   XREF _LVOSendIO
  30.   XREF _LVOTranslate
  31.   XREF _LVOCreateGadgetA
  32.   XREF _LVOFreeGadgets
  33.   XREF _LVOGetVisualInfoA
  34.   XREF _LVOOpenWorkBench
  35.   XREF _LVOCreateContext
  36.   XREF _LVOAddGList
  37.   XREF _LVORemoveGList
  38.   XREF _LVOGT_RefreshWindow
  39.   XREF _LVOFreeVisualInfo
  40.   XREF _LVOGT_SetGadgetAttrsA
  41.   XREF _LVOFindTask
  42.   XREF _LVOGetMsg
  43.   XREF _LVOReplyMsg
  44.  
  45.  
  46. BUTTON_KIND        equ 1
  47. CYCLE_KIND        equ 7
  48. SLIDER_KIND        equ 11
  49. STRING_KIND        equ 12
  50. PLACETEXT_LEFT        equ $1
  51. PLACETEXT_RIGHT        equ $2
  52. PLACETEXT_ABOVE        equ $4
  53. PLACETEXT_BELOW        equ $8
  54. PLACETEXT_IN        equ $10
  55. NG_HIGHLABEL        equ $20
  56. GT_Underscore        equ $80080040
  57. GT_VisualInfo        equ $80080034
  58. GTMX_Active        equ $8008000a
  59. GTMX_Labels        equ $80080009
  60. GTMX_Spacing        equ $8008003d
  61. GTCY_Labels        equ $8008000e
  62. GTCY_Active        equ $8008000f
  63. GTST_MaxChars        equ $8008002e
  64. GTSL_Min        equ $80080026
  65. GTSL_Max        equ $80080027
  66. GTSL_Level        equ $80080028
  67. GTSL_MaxLevelLen    equ $80080029
  68. GTSL_LevelFormat    equ $8008002a
  69. GTSL_LevelPlace        equ $8008002b
  70. GTSL_DispFunc        equ $8008002c
  71. GA_Disabled        equ $8003000e
  72. GA_Immediate        equ $80030015
  73. GA_RelVerify        equ $80030016
  74. TAG_DONE        equ $0
  75.  
  76. CMD_WRITE    equ 3
  77. NDF_NEWIORB    equ 1
  78.  
  79. io_Command    equ 28
  80. io_Length    equ 36
  81. io_Data        equ 40
  82. rate        equ 48
  83. pitch        equ 50
  84. mode        equ 52
  85. sex        equ 54
  86. ch_masks    equ 56
  87. nm_masks    equ 60
  88. volume        equ 62
  89. flags        equ 69
  90. F0enthusiasm    equ 70
  91. F0perturb    equ 71
  92. F1adj        equ 72
  93. F2adj        equ 73
  94. F3adj        equ 74
  95. A1adj        equ 75
  96. A2adj        equ 76
  97. A3adj        equ 77
  98. articulate    equ 78
  99. centralize    equ 79
  100. centphon    equ 80
  101. AVbias        equ 84
  102. AFbias        equ 85
  103.  
  104. IDCMP_MOUSEMOVE        equ $10
  105. IDCMP_GADGETDOWN    equ $20
  106. IDCMP_GADGETUP        equ $40
  107. IDCMP_CLOSEWINDOW    equ $200
  108. WFLG_SMART_REFRESH    equ $0
  109. WFLG_DRAGBAR        equ $2
  110. WFLG_DEPTHGADGET    equ $4
  111. WFLG_CLOSEGADGET    equ $8
  112. WFLG_ACTIVATE        equ $1000
  113.  
  114. GFLG_GADGHCOMP        equ $0000
  115. GFLG_SELECTED        equ $0080
  116. GACT_STRINGLEFT        equ $0000
  117. GACT_RELVERIFY        equ $0001
  118. GACT_TOGGLESELECT    equ $0100
  119. GTYP_BOOLGADGET        equ $0001
  120. GTYP_STRGADGET        equ $0004
  121. JAM1            equ 0
  122. WBENCHSCREEN        equ 1
  123. NATURALF0        equ 0
  124. ROBOTICF0        equ 1
  125. MANUALF0        equ 2
  126. MALE            equ 0
  127. FEMALE            equ 1
  128. pr_MsgPort        equ 92
  129. pr_CLI            equ 172
  130.  
  131. NarTest
  132.   move.l  4,a6            ; Check if we're run from WB
  133.   sub.l   a1,a1
  134.   jsr     _LVOFindTask(a6)
  135.   move.l  d0,a4
  136.   tst.l   pr_CLI(a4)        ; CLI or WB?
  137.   bne.s   NoWorkbench
  138.   lea     pr_MsgPort(a4),a0
  139.   jsr     _LVOWaitPort(a6)    ; Wait for message
  140.   lea     pr_MsgPort(a4),a0
  141.   jsr     _LVOGetMsg(a6)    ; Get it
  142.   move.l  d0,WorkbenchMsg    ; Store it
  143. NoWorkbench
  144.   jsr     _LVOCreateMsgPort(a6)
  145.   cmp.l   #0,d0
  146.   beq     Quit
  147.   move.l  d0,NarratorPort
  148.   move.l  d0,a0
  149.   moveq.l #88,d0
  150.   jsr     _LVOCreateIORequest(a6)
  151.   cmp.l   #0,d0
  152.   beq     Quit
  153.   move.l  d0,NarratorRequest
  154.   move.l  d0,a1
  155.   move.b  #NDF_NEWIORB,flags(a1)    ; use the new fields
  156.   lea     NarratorName(pc),a0
  157.   moveq.l #0,d0
  158.   move.l  d0,d1
  159.   jsr     _LVOOpenDevice(a6)
  160.   cmp.l   #0,d0
  161.   bne     Quit
  162.   lea     IntuitionName(pc),a1
  163.   moveq.l #37,d0
  164.   jsr     _LVOOpenLibrary(a6)
  165.   cmp.l   #0,d0
  166.   beq     Quit
  167.   move.l  d0,IntuitionBase
  168.   lea     TranslatorName(pc),a1
  169.   moveq.l #0,d0
  170.   jsr     _LVOOpenLibrary(a6)
  171.   cmp.l   #0,d0
  172.   beq     Quit
  173.   move.l  d0,TranslatorBase
  174.   lea     GadToolsName(pc),a1
  175.   moveq.l #0,d0
  176.   jsr     _LVOOpenLibrary(a6)
  177.   cmp.l   #0,d0
  178.   beq     Quit
  179.   move.l  d0,GadToolsBase
  180.  
  181.   move.l  IntuitionBase(pc),a6
  182.   lea     NewWindow(pc),a0
  183.   jsr     _LVOOpenWindow(a6)
  184.   cmp.l   #0,d0
  185.   beq     Quit
  186.   move.l  d0,NarWindow
  187.   move.l  d0,a0
  188.   move.l  50(a0),NarRastPort
  189.   move.l  62(a0),FirstGadget
  190.   move.l  86(a0),NarUserPort
  191.  
  192.   move.l  IntuitionBase(pc),a6
  193.   jsr     _LVOOpenWorkBench(a6)
  194.   move.l  d0,WBScreen
  195.   move.l  #0,GList
  196.   move.l  GadToolsBase(pc),a6
  197.   lea     GList(pc),a0
  198.   jsr     _LVOCreateContext(a6)
  199.   move.l  d0,LastGadget
  200.   move.l  WBScreen(pc),a0
  201.   sub.l   a1,a1
  202.   jsr     _LVOGetVisualInfoA(a6)
  203.   move.l  d0,VisualInfo
  204.  
  205.   move.l  NarratorRequest(pc),a1
  206.   move.w  mode(a1),InitialMode
  207.   move.w  sex(a1),InitialSex
  208.   move.w  volume(a1),InitialVolume
  209.   move.w  rate(a1),InitialRate
  210.   move.w  pitch(a1),InitialPitch
  211.   move.b  centralize(a1),InitialCentralize
  212.   move.b  articulate(a1),InitialArticulate
  213.   move.l  NarratorRequest(pc),a5
  214.  
  215.   move.l  VisualInfo(pc),TextVisual        ; Create Text-gadget
  216.   lea     TextGadget(pc),a1
  217.   lea     TextGadgetTags(pc),a2
  218.   bsr     CreateString
  219.   move.l  d0,TextBase
  220.   move.l  (a0),TextBuffer
  221.  
  222.   move.l  VisualInfo(pc),TextVisual2        ; Create Phonetic-gadget
  223.   lea     TextGadget2(pc),a1
  224.   lea     TextGadget2Tags(pc),a2
  225.   bsr     CreateString
  226.   move.l  d0,TextBase2
  227.   move.l  (a0),TextBuffer2
  228.  
  229.   move.l  VisualInfo(pc),ModeVisual        ; Create Mode-gadget
  230.   lea     ModeGadget(pc),a1
  231.   lea     ModeGadgetTags(pc),a2
  232.   bsr     CreateCycle
  233.   move.l  d0,ModeBase
  234.  
  235.   move.l  VisualInfo(pc),SexVisual        ; Create Sex-gadget
  236.   lea     SexGadget(pc),a1
  237.   lea     SexGadgetTags(pc),a2
  238.   bsr     CreateCycle
  239.   move.l  d0,SexBase
  240.  
  241.   move.l  VisualInfo(pc),VolumeVisual        ; Create Volume-gadget
  242.   lea     VolumeGadget(pc),a1
  243.   lea     VolumeGadgetTags(pc),a2
  244.   bsr     CreateSlider
  245.   move.l  d0,VolumeBase
  246.  
  247.   move.l  VisualInfo(pc),RateVisual        ; Create Rate-gadget
  248.   lea     RateGadget(pc),a1
  249.   lea     RateGadgetTags(pc),a2
  250.   bsr     CreateSlider
  251.   move.l  d0,RateBase
  252.  
  253.   move.l  VisualInfo(pc),PitchVisual        ; Create Pitch-gadget
  254.   lea     PitchGadget(pc),a1
  255.   lea     PitchGadgetTags(pc),a2
  256.   bsr     CreateSlider
  257.   move.l  d0,PitchBase
  258.  
  259.   move.b  F0enthusiasm(a5),InitialF0
  260.   move.l  VisualInfo(pc),F0EnthusiasmVisual    ; Create F0Enthusiasm-gadget
  261.   lea     F0EnthusiasmGadget(pc),a1
  262.   lea     F0GadgetTags(pc),a2
  263.   bsr     CreateSlider
  264.   move.l  d0,F0EnthusiasmBase
  265.  
  266.   move.b  F0perturb(a5),InitialF0
  267.   move.l  VisualInfo(pc),F0PerturbVisual    ; Create F0Perturb-gadget
  268.   lea     F0PerturbGadget(pc),a1
  269.   lea     F0GadgetTags(pc),a2
  270.   bsr     CreateSlider
  271.   move.l  d0,F0PerturbBase
  272.  
  273.   move.b  F1adj(a5),InitialF123Adj
  274.   move.l  VisualInfo(pc),F1AdjVisual        ; Create F1Adj-gadget
  275.   lea     F1AdjGadget(pc),a1
  276.   lea     F123AdjGadgetTags(pc),a2
  277.   bsr     CreateSlider
  278.   move.l  d0,F1AdjBase
  279.  
  280.   move.b  F2adj(a5),InitialF123Adj
  281.   move.l  VisualInfo(pc),F2AdjVisual        ; Create F2Adj-gadget
  282.   lea     F2AdjGadget(pc),a1
  283.   lea     F123AdjGadgetTags(pc),a2
  284.   bsr     CreateSlider
  285.   move.l  d0,F2AdjBase
  286.  
  287.   move.b  F3adj(a5),InitialF123Adj
  288.   move.l  VisualInfo(pc),F3AdjVisual        ; Create F3Adj-gadget
  289.   lea     F3AdjGadget(pc),a1
  290.   lea     F123AdjGadgetTags(pc),a2
  291.   bsr     CreateSlider
  292.   move.l  d0,F3AdjBase
  293.  
  294.   move.b  A1adj(a5),InitialA123Adj
  295.   move.l  VisualInfo(pc),A1AdjVisual        ; Create A1Adj-gadget
  296.   lea     A1AdjGadget(pc),a1
  297.   lea     A123AdjGadgetTags(pc),a2
  298.   bsr     CreateSlider
  299.   move.l  d0,A1AdjBase
  300.  
  301.   move.b  A2adj(a5),InitialA123Adj
  302.   move.l  VisualInfo(pc),A2AdjVisual        ; Create A2Adj-gadget
  303.   lea     A2AdjGadget(pc),a1
  304.   lea     A123AdjGadgetTags(pc),a2
  305.   bsr     CreateSlider
  306.   move.l  d0,A2AdjBase
  307.  
  308.   move.b  A1adj(a5),InitialA123Adj
  309.   move.l  VisualInfo(pc),A3AdjVisual        ; Create A3Adj-gadget
  310.   lea     A3AdjGadget(pc),a1
  311.   lea     A123AdjGadgetTags(pc),a2
  312.   bsr     CreateSlider
  313.   move.l  d0,A3AdjBase
  314.  
  315.   move.b  AVbias(a5),InitialA123Adj
  316.   move.l  VisualInfo(pc),AVBiasVisual        ; Create AVBias-gadget
  317.   lea     AVBiasGadget(pc),a1
  318.   lea     A123AdjGadgetTags(pc),a2
  319.   bsr     CreateSlider
  320.   move.l  d0,AVBiasBase
  321.  
  322.   move.b  AFbias(a5),InitialA123Adj
  323.   move.l  VisualInfo(pc),AFBiasVisual        ; Create AFBias-gadget
  324.   lea     AFBiasGadget(pc),a1
  325.   lea     A123AdjGadgetTags(pc),a2
  326.   bsr     CreateSlider
  327.   move.l  d0,AFBiasBase
  328.  
  329.   move.l  VisualInfo(pc),CentralizeVisual    ; Create Centralize-gadget
  330.   lea     CentralizeGadget(pc),a1
  331.   lea     CentralizeGadgetTags(pc),a2
  332.   bsr.s   CreateSlider
  333.   move.l  d0,CentralizeBase
  334.  
  335.   move.l  VisualInfo(pc),CentphonVisual        ; Create Centphon-gadget
  336.   lea     CentphonGadget(pc),a1
  337.   lea     CentphonGadgetTags(pc),a2
  338.   bsr.s   CreateCycle
  339.   move.l  d0,CentphonBase
  340.  
  341.   move.l  VisualInfo(pc),ArticulateVisual    ; Create Articulate-gadget
  342.   lea     ArticulateGadget(pc),a1
  343.   lea     ArticulateGadgetTags(pc),a2
  344.   bsr.s   CreateSlider
  345.   move.l  d0,ArticulateBase
  346.  
  347.   move.l  VisualInfo(pc),ResetVisual        ; Create Reset-gadget
  348.   moveq.l #BUTTON_KIND,d0
  349.   move.l  LastGadget(pc),a0
  350.   lea     ResetGadget(pc),a1
  351.   sub.l   a2,a2
  352.   jsr     _LVOCreateGadgetA(a6)
  353.   move.l  d0,LastGadget
  354.   move.l  d0,ResetBase
  355.   bra.s   GadgetsCreated
  356.  
  357. CreateSlider
  358.   moveq.l #SLIDER_KIND,d0
  359.   bsr.s   CreateGadget
  360.   rts
  361.  
  362. CreateCycle
  363.   moveq.l #CYCLE_KIND,d0
  364.   bsr.s   CreateGadget
  365.   rts
  366.  
  367. CreateString
  368.   moveq.l #STRING_KIND,d0
  369.   bsr.s   CreateGadget
  370.   move.l  d0,a0
  371.   move.l  34(a0),a0
  372.   rts
  373.  
  374. CreateGadget
  375.   move.l  LastGadget(pc),a0
  376.   jsr     _LVOCreateGadgetA(a6)
  377.   move.l  d0,LastGadget
  378.   rts
  379.  
  380. GadgetsCreated
  381.   move.l  IntuitionBase(pc),a6
  382.   move.l  NarWindow(pc),a0
  383.   move.l  GList(pc),a1
  384.   move.l  #-1,d0
  385.   move.l  #-1,d1
  386.   sub.l   a2,a2
  387.   jsr     _LVOAddGList(a6)
  388.   move.l  TextBase(pc),a0
  389.   move.l  NarWindow(pc),a1
  390.   sub.l   a2,a2
  391.   jsr     _LVOActivateGadget(a6)
  392.   bsr     RefreshGadgets
  393.   move.l  GadToolsBase(pc),a6
  394.   move.l  NarWindow(pc),a0
  395.   sub.l   a1,a1
  396.   jsr     _LVOGT_RefreshWindow(a6)
  397.  
  398.   move.l  4,a6
  399.   move.l  NarratorRequest(pc),a1
  400.   move.w  #CMD_WRITE,io_Command(a1)
  401.   lea     WelcomeText(pc),a0
  402.   move.l  a0,io_Data(a1)
  403.   bsr     StrLen
  404.   move.l  d0,io_Length(a1)
  405.   lea     AudioChan(pc),a0
  406.   move.l  a0,ch_masks(a1)
  407.   move.w  #4,nm_masks(a1)
  408.   move.w  #140,rate(a1)
  409.   jsr     _LVODoIO(a6)
  410.  
  411. SetValues
  412.   move.l  NarratorRequest(pc),a1
  413.   move.l  TextBuffer2(pc),a0
  414.   move.l  a0,io_Data(a1)
  415.   lea     Values,a0
  416. SetValues2
  417.   move.b  (a1)+,(a0)+
  418.   cmp.l   #ValuesEnd,a0
  419.   bne.s   SetValues2
  420.  
  421. WaitForMessage
  422.   move.l  4,a6
  423.   move.l  NarUserPort(pc),a0
  424.   jsr     _LVOWaitPort(a6)    ; Wait for a message
  425. WaitForMessage2
  426.   move.l  GadToolsBase,a6
  427.   move.l  NarUserPort(pc),a0    ; Got it
  428.   jsr     _LVOGT_GetIMsg(a6)
  429.   move.l  d0,a1
  430.   cmp.l   #0,d0
  431.   beq.s   WaitForMessage    ; What? No Message?!
  432. WaitForMessage2.1
  433.   move.l  20(a1),Class
  434.   move.w  24(a1),Code
  435.   move.w  26(a1),Qualifier
  436.   move.l  28(a1),IAddress
  437.   jsr     _LVOGT_ReplyIMsg(a6)
  438. WaitForMessage3
  439.   cmp.l   #IDCMP_CLOSEWINDOW,Class
  440.   bne.s   WaitForMessage4
  441.   bra.s   Quit
  442. WaitForMessage4
  443.   cmp.l   #IDCMP_GADGETUP,Class
  444.   bne.s   WaitForMessage5
  445.   move.l  IAddress(pc),a4
  446.   move.l  40(a4),a3
  447.   move.l  NarratorRequest(pc),a1
  448.   jsr     (a3)
  449.   bra     WaitForMessage2
  450. WaitForMessage5
  451.   bra     WaitForMessage2
  452.  
  453.  
  454. Quit
  455.   move.l  IntuitionBase(pc),a6
  456.   move.l  NarWindow(pc),a0
  457.   cmp.l   #0,a0
  458.   beq.s   Quit9
  459.   move.l  GList(pc),a1
  460.   cmp.l   #0,a1
  461.   beq.s   Quit9
  462.   move.l  #-1,d0
  463.   jsr     _LVORemoveGList(a6)
  464. Quit9
  465.   move.l  GadToolsBase(pc),a6
  466.   cmp.l   #0,a6
  467.   beq.s   Quit8
  468.   move.l  GList(pc),a0
  469.   jsr     _LVOFreeGadgets(a6)
  470.   move.l  VisualInfo(pc),a0
  471.   jsr     _LVOFreeVisualInfo(a6)
  472. Quit8
  473.   move.l  IntuitionBase(pc),a6
  474.   move.l  NarWindow(pc),a0
  475.   cmp.l   #0,a0
  476.   beq.s   Quit5
  477.   jsr     _LVOCloseWindow(a6)
  478. Quit5
  479.   move.l  4,a6
  480.   move.l  GadToolsBase(pc),a1
  481.   cmp.l   #0,a1
  482.   beq.s   Quit7
  483.   jsr     _LVOCloseLibrary(a6)
  484. Quit7
  485.   move.l  TranslatorBase(pc),a1
  486.   cmp.l   #0,a1
  487.   beq.s   Quit6
  488.   jsr     _LVOCloseLibrary(a6)
  489. Quit6
  490.   move.l  IntuitionBase(pc),a1
  491.   cmp.l   #0,a1
  492.   beq.s   Quit4
  493.   jsr     _LVOCloseLibrary(a6)
  494. Quit4
  495.   move.l  NarratorRequest(pc),a1
  496.   cmp.l   #0,a1
  497.   beq.s   Quit2
  498.   jsr     _LVOCloseDevice(a6)
  499.   move.l  NarratorRequest(pc),a0
  500.   jsr     _LVODeleteIORequest(a6)
  501. Quit2
  502.   move.l  NarratorPort(pc),a0
  503.   cmp.l   #0,a0
  504.   beq.s   Quit3
  505.   jsr     _LVODeleteMsgPort(a6)
  506. Quit3
  507.   move.l  WorkbenchMsg(pc),a1
  508.   cmp.l   #0,a1
  509.   bne.s   WBQuit            ; We were started from WB
  510.   moveq.l #0,d0
  511.   rts                    ; Exit to CLI
  512.  
  513. WBQuit
  514.   move.l  4,a6
  515.   jsr     _LVOReplyMsg(a6)
  516.   rts                    ; Exit to WB
  517.  
  518. RefreshGadgets
  519.   movem.l a0-a6/d0-d7,-(sp)
  520.   move.l  IntuitionBase(pc),a6
  521.   move.l  GList(pc),a0
  522.   move.l  NarWindow(pc),a1
  523.   sub.l   a2,a2
  524.   move.l  #-1,d0
  525.   jsr     _LVORefreshGList(a6)
  526.   movem.l (sp)+,a0-a6/d0-d7
  527.   rts
  528.  
  529. ConvertString
  530.   move.l  TextBuffer(pc),a0
  531.   bsr     UpperCase
  532.   bsr.s   ClearBuffer2
  533.   move.l  TranslatorBase(pc),a6
  534.   move.l  TextBuffer(pc),a0
  535.   move.l  TextBuffer2(pc),a1
  536.   move.l  #200,d0
  537.   move.l  #800,d1
  538.   jsr     _LVOTranslate(a6)
  539.   bsr     RefreshGadgets
  540.   bsr     TextActivate
  541.   bsr.s   Say
  542.   rts
  543.  
  544. ConvertString2
  545.   move.l  TextBuffer2(pc),a0
  546.   bsr     UpperCase
  547.   bsr     RefreshGadgets
  548.   move.l  IntuitionBase(pc),a6
  549.   move.l  TextBase2(pc),a0
  550.   move.l  NarWindow(pc),a1
  551.   sub.l   a2,a2
  552.   jsr     _LVOActivateGadget(a6)
  553.   bsr.s   Say
  554.   rts
  555.  
  556. Say
  557.   move.l  4,a6
  558.   move.l  NarratorRequest(pc),a1
  559.   move.w  #CMD_WRITE,io_Command(a1)
  560.   move.l  TextBuffer2(pc),a0
  561.   bsr     StrLen
  562.   move.l  d0,io_Length(a1)
  563.   jsr     _LVODoIO(a6)
  564.   rts
  565.  
  566. ClearBuffer2
  567.   move.l  TextBuffer2(pc),a0
  568.   moveq.l #0,d0
  569. ClearBuffer2.2
  570.   move.b  #0,(a0)+
  571.   addq.l  #1,d0
  572.   cmp.w   #800,d0
  573.   bne.s   ClearBuffer2.2
  574.   rts
  575.  
  576. SetMode
  577.   move.w  Code(pc),mode(a1)
  578.   bsr     TextActivate
  579.   rts
  580.  
  581. SetSex
  582.   move.w  Code(pc),sex(a1)
  583.   bsr     TextActivate
  584.   rts
  585.  
  586. SetVolume
  587.   move.w  Code(pc),volume(a1)
  588.   bsr     TextActivate
  589.   rts
  590.  
  591. SetRate
  592.   move.w  Code(pc),rate(a1)
  593.   bsr     TextActivate
  594.   rts
  595.  
  596. SetPitch
  597.   move.w  Code(pc),pitch(a1)
  598.   bsr     TextActivate
  599.   rts
  600.  
  601. SetF0Enthusiasm
  602.   move.w  Code(pc),d0
  603.   move.b  d0,F0enthusiasm(a1)
  604.   bsr     TextActivate
  605.   rts
  606.  
  607. SetF0Perturb
  608.   move.w  Code(pc),d0
  609.   move.b  d0,F0perturb(a1)
  610.   bsr     TextActivate
  611.   rts
  612.  
  613. SetF1Adj
  614.   move.w  Code(pc),d0
  615.   move.b  d0,F1adj(a1)
  616.   bsr     TextActivate
  617.   rts
  618.  
  619. SetF2Adj
  620.   move.w  Code(pc),d0
  621.   move.b  d0,F2adj(a1)
  622.   bsr     TextActivate
  623.   rts
  624.  
  625. SetF3Adj
  626.   move.w  Code(pc),d0
  627.   move.b  d0,F3adj(a1)
  628.   bsr     TextActivate
  629.   rts
  630.  
  631. SetA1Adj
  632.   move.w  Code(pc),d0
  633.   move.b  d0,A1adj(a1)
  634.   bsr     TextActivate
  635.   rts
  636.  
  637. SetA2Adj
  638.   move.w  Code(pc),d0
  639.   move.b  d0,A2adj(a1)
  640.   bsr     TextActivate
  641.   rts
  642.  
  643. SetA3Adj
  644.   move.w  Code(pc),d0
  645.   move.b  d0,A3adj(a1)
  646.   bsr     TextActivate
  647.   rts
  648.  
  649. SetAVBias
  650.   move.w  Code(pc),d0
  651.   move.b  d0,AVbias(a1)
  652.   bsr     TextActivate
  653.   rts
  654.  
  655. SetAFBias
  656.   move.w  Code(pc),d0
  657.   move.b  d0,AFbias(a1)
  658.   bsr     TextActivate
  659.   rts
  660.  
  661. SetCentralize
  662.   move.w  Code(pc),d0
  663.   move.b  d0,centralize(a1)
  664.   bsr     TextActivate
  665.   rts
  666.  
  667. SetCentphon
  668.   lea     CentphonNone(pc),a0
  669.   moveq.l #0,d0
  670.   move.w  Code(pc),d0
  671.   asl.l   #2,d0
  672.   add.l   d0,a0
  673.   move.l  a0,centphon(a1)
  674.   bsr     TextActivate
  675.   rts
  676.  
  677. SetArticulate
  678.   move.w  Code(pc),d0
  679.   move.b  d0,articulate(a1)
  680.   bsr     TextActivate
  681.   rts
  682.  
  683. ResetValues
  684.   move.l  a1,a5
  685.   lea     Values,a0
  686. ResetValues2
  687.   move.b  (a0)+,(a1)+
  688.   cmp.l   #ValuesEnd,a0
  689.   bne.s   ResetValues2
  690.   move.l  GadToolsBase(pc),a6
  691.   move.l  ModeBase(pc),a0
  692.   move.w  mode(a5),CycleValueW
  693.   bsr     ResetCycle
  694.   move.l  SexBase(pc),a0
  695.   move.w  sex(a5),CycleValueW
  696.   bsr     ResetCycle
  697.   move.l  CentphonBase(pc),a0
  698.   move.w  #0,CycleValueW
  699.   bsr     ResetCycle
  700.   move.l  A1AdjBase(pc),a0
  701.   move.b  A1adj(a5),SliderValueB
  702.   bsr     ResetSlider
  703.   move.l  A2AdjBase(pc),a0
  704.   move.b  A2adj(a5),SliderValueB
  705.   bsr     ResetSlider
  706.   move.l  A3AdjBase(pc),a0
  707.   move.b  A3adj(a5),SliderValueB
  708.   bsr     ResetSlider
  709.   move.l  F1AdjBase(pc),a0
  710.   move.b  F1adj(a5),SliderValueB
  711.   bsr     ResetSlider
  712.   move.l  F2AdjBase(pc),a0
  713.   move.b  F2adj(a5),SliderValueB
  714.   bsr     ResetSlider
  715.   move.l  F3AdjBase(pc),a0
  716.   move.b  F3adj(a5),SliderValueB
  717.   bsr     ResetSlider
  718.   move.l  F0EnthusiasmBase(pc),a0
  719.   move.b  F0enthusiasm(a5),SliderValueB
  720.   bsr.s   ResetSlider
  721.   move.l  F0PerturbBase(pc),a0
  722.   move.b  F0perturb(a5),SliderValueB
  723.   bsr.s   ResetSlider
  724.   move.l  PitchBase(pc),a0
  725.   move.w  pitch(a5),SliderValueW
  726.   bsr.s   ResetSlider
  727.   move.l  RateBase(pc),a0
  728.   move.w  rate(a5),SliderValueW
  729.   bsr.s   ResetSlider
  730.   move.l  AVBiasBase(pc),a0
  731.   move.b  AVbias(a5),SliderValueB
  732.   bsr.s   ResetSlider
  733.   move.l  AFBiasBase(pc),a0
  734.   move.b  AFbias(a5),SliderValueB
  735.   bsr.s   ResetSlider
  736.   move.l  CentralizeBase(pc),a0
  737.   move.b  centralize(a5),SliderValueB
  738.   bsr.s   ResetSlider
  739.   move.l  ArticulateBase(pc),a0
  740.   move.b  articulate(a5),SliderValueB
  741.   bsr.s   ResetSlider
  742.   bsr     TextActivate
  743.   rts
  744.  
  745. ResetCycle
  746.   move.l  NarWindow(pc),a1
  747.   sub.l   a2,a2
  748.   lea     ResetCycleTags(pc),a3
  749.   jsr     _LVOGT_SetGadgetAttrsA(a6)
  750.   rts
  751.  
  752. ResetSlider
  753.   move.l  NarWindow(pc),a1
  754.   sub.l   a2,a2
  755.   lea     ResetSliderTags(pc),a3
  756.   jsr     _LVOGT_SetGadgetAttrsA(a6)
  757.   move.w  #0,SliderValueW
  758.   rts
  759.  
  760. TextActivate
  761.   move.l  IntuitionBase(pc),a6
  762.   move.l  TextBase(pc),a0
  763.   move.l  NarWindow(pc),a1
  764.   sub.l   a2,a2
  765.   jsr     _LVOActivateGadget(a6)
  766.   rts
  767.  
  768. StrLen        ; in: a0=string, out: d0=length of the string
  769.   movem.l a0,-(sp)
  770.   moveq.l #0,d0
  771. StrLen2
  772.   cmp.b   #0,(a0)+
  773.   beq.s   StrLen3
  774.   addq.l  #1,d0
  775.   bra.s   StrLen2
  776. StrLen3
  777.   movem.l (sp)+,a0
  778.   rts
  779.  
  780. UpperCase        ; in: a0=string
  781.   movem.l a0,-(sp)
  782. UpperCase1
  783.   cmp.b   #'a',(a0)
  784.   bmi.s   UpperCase2
  785.   cmp.b   #'z'+1,(a0)
  786.   bpl.s   UpperCase2
  787.   sub.b   #32,(a0)
  788. UpperCase2
  789.   cmp.b   #0,(a0)+
  790.   bne.s   UpperCase1
  791.   movem.l (sp)+,a0
  792.   rts
  793.  
  794. IntuitionBase        dc.l 0
  795. TranslatorBase        dc.l 0
  796. GadToolsBase        dc.l 0
  797. WorkbenchMsg        dc.l 0
  798. NarWindow        dc.l 0
  799. NarUserPort        dc.l 0
  800. NarRastPort        dc.l 0
  801. NarratorPort        dc.l 0
  802. NarratorRequest        dc.l 0
  803. Code            dc.l 0
  804. Class            dc.l 0
  805. IAddress        dc.l 0
  806. Qualifier        dc.l 0
  807. FirstGadget        dc.l 0
  808. LastGadget        dc.l 0
  809. VisualInfo        dc.l 0
  810. WBScreen        dc.l 0
  811. GList            dc.l 0
  812. TextBuffer        dc.l 0
  813. TextBuffer2        dc.l 0
  814.  
  815. TextBase        dc.l 0
  816. TextBase2        dc.l 0
  817. ModeBase        dc.l 0
  818. SexBase            dc.l 0
  819. VolumeBase        dc.l 0
  820. RateBase        dc.l 0
  821. PitchBase        dc.l 0
  822. F0EnthusiasmBase    dc.l 0
  823. F0PerturbBase        dc.l 0
  824. F1AdjBase        dc.l 0
  825. F2AdjBase        dc.l 0
  826. F3AdjBase        dc.l 0
  827. A1AdjBase        dc.l 0
  828. A2AdjBase        dc.l 0
  829. A3AdjBase        dc.l 0
  830. AVBiasBase        dc.l 0
  831. AFBiasBase        dc.l 0
  832. CentralizeBase        dc.l 0
  833. CentphonBase        dc.l 0
  834. ArticulateBase        dc.l 0
  835. ResetBase        dc.l 0
  836.  
  837. NewWindow        dc.w 30,30,420,165
  838.             dc.b 0,1
  839.             dc.l IDCMP_GADGETUP!IDCMP_CLOSEWINDOW!IDCMP_MOUSEMOVE!IDCMP_GADGETDOWN
  840.             dc.l WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_CLOSEGADGET!WFLG_SMART_REFRESH!WFLG_ACTIVATE
  841.             dc.l 0,0,NarWindowName,0,0
  842.             dc.w 420,165,420,165,WBENCHSCREEN
  843.  
  844. IntuitionName        dc.b 'intuition.library',0
  845. TranslatorName        dc.b 'translator.library',0
  846. GadToolsName        dc.b 'gadtools.library',0
  847. NarratorName        dc.b 'narrator.device',0
  848. Font0Name        dc.b 'topaz.font',0
  849.  
  850. VolumeString        dc.b '%02ld',0
  851. RateString        dc.b '%03ldwpm',0
  852. PitchString        dc.b '%03ldHz',0
  853. TriNumberString        dc.b '%03ld',0
  854. SignedBiNumberString    dc.b '%3ld',0
  855. VersionString        dc.b '$VER: '
  856. NarWindowName        dc.b 'Narrator tester V1.01  27-June-1993',0
  857. TextName        dc.b 'English: ',0
  858. TextName2        dc.b 'Phonetic:',0
  859. ModeName        dc.b 'Mode',0
  860. SexName            dc.b 'Sex',0
  861. VolumeName        dc.b 'Volume',0
  862. RateName        dc.b 'Rate ',0
  863. PitchName        dc.b 'Pitch',0
  864. F0EnthusiasmName    dc.b 'F0enthus ',0
  865. F0PerturbName        dc.b 'F0perturb',0
  866. F1AdjName        dc.b 'F1adj',0
  867. F2AdjName        dc.b 'F2adj',0
  868. F3AdjName        dc.b 'F3adj',0
  869. A1AdjName        dc.b 'A1adj',0
  870. A2AdjName        dc.b 'A2adj',0
  871. A3AdjName        dc.b 'A3adj',0
  872. AVBiasName        dc.b 'AVBias',0
  873. AFBiasName        dc.b 'AFBias',0
  874. CentralizeName        dc.b 'Centralize',0
  875. CentphonName        dc.b 'Centphon',0
  876. ArticulateName        dc.b 'Articulate',0
  877. ResetName        dc.b 'Reset Values',0
  878. AudioChan        dc.b 3,5,10,12
  879. WelcomeText        dc.b 'WEH4LKAHM TUW NAE2RAETER TEH4STER. '
  880.             dc.b 'DHIHS IHZ VER4SHUN WAHN POYNT '
  881.             dc.b 'ZIYROW WAHN.',0
  882.  
  883. ModeNatural        dc.b 'Natural',0
  884. ModeRobotic        dc.b 'Robotic',0
  885. ModeManual        dc.b 'Manual',0
  886. SexMale            dc.b 'Male',0
  887. SexFemale        dc.b 'Female',0
  888.  
  889.  ds.l 0
  890.  
  891. CentphonNone        dc.b 0,0,0,0
  892. CentphonIY        dc.b 'IY',0,0
  893. CentphonIH        dc.b 'IH',0,0
  894. CentphonEH        dc.b 'EH',0,0
  895. CentphonAE        dc.b 'AE',0,0
  896. CentphonAA        dc.b 'AA',0,0
  897. CentphonAH        dc.b 'AH',0,0
  898. CentphonAO        dc.b 'AO',0,0
  899. CentphonOW        dc.b 'OW',0,0
  900. CentphonUH        dc.b 'UH',0,0
  901. CentphonER        dc.b 'ER',0,0
  902. CentphonUW        dc.b 'UW',0,0
  903.  
  904. Font0
  905.   dc.l Font0Name
  906.   dc.w 8
  907.   dc.b 0,1
  908.  
  909. TextGadget            ; GADGETUP
  910.   dc.w 85,15,320,12
  911.   dc.l TextName,Font0
  912.   dc.w 1000
  913.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  914. TextVisual
  915.   dc.l 0,ConvertString
  916.  
  917. TextGadgetTags
  918.   dc.l GTST_MaxChars,200
  919.   dc.l TAG_DONE
  920.  
  921. TextGadget2            ; GADGETUP
  922.   dc.w 85,30,320,12
  923.   dc.l TextName2,Font0
  924.   dc.w 1001
  925.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  926. TextVisual2
  927.   dc.l 0,ConvertString2
  928.  
  929. TextGadget2Tags
  930.   dc.l GTST_MaxChars,800
  931.   dc.l TAG_DONE
  932.  
  933. ModeGadget
  934.   dc.w 46,45,88,12
  935.   dc.l ModeName,Font0
  936.   dc.w 1002
  937.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  938. ModeVisual
  939.   dc.l 0,SetMode
  940.  
  941. ModeGadgetTags
  942.   dc.l GTCY_Labels,ModeLabels
  943.   dc.l GTCY_Active
  944.   dc.w 0
  945. InitialMode
  946.   dc.w 0
  947.   dc.l TAG_DONE
  948.  
  949. ModeLabels
  950.   dc.l ModeNatural,ModeRobotic,ModeManual,0
  951.  
  952. SexGadget
  953.   dc.w 170,45,80,12
  954.   dc.l SexName,Font0
  955.   dc.w 1003
  956.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  957. SexVisual
  958.   dc.l 0,SetSex
  959.  
  960. SexGadgetTags
  961.   dc.l GTCY_Labels,SexLabels
  962.   dc.l GTCY_Active
  963.   dc.w 0
  964. InitialSex
  965.   dc.w 0
  966.   dc.l TAG_DONE
  967.  
  968. SexLabels
  969.   dc.l SexMale,SexFemale,0
  970.  
  971. VolumeGadget
  972.   dc.w 308,45,84,12
  973.   dc.l VolumeName,Font0
  974.   dc.w 1004
  975.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  976. VolumeVisual
  977.   dc.l 0,SetVolume
  978.  
  979. VolumeGadgetTags
  980.   dc.l GTSL_Min,0
  981.   dc.l GTSL_Max,64
  982.   dc.l GTSL_MaxLevelLen,2
  983.   dc.l GTSL_LevelPlace,PLACETEXT_RIGHT
  984.   dc.l GTSL_LevelFormat,VolumeString
  985.   dc.l GTSL_Level
  986.   dc.w 0
  987. InitialVolume
  988.   dc.w 0
  989.   dc.l GA_RelVerify,1
  990.   dc.l TAG_DONE
  991.  
  992. RateGadget
  993.   dc.w 264,105,96,12
  994.   dc.l RateName,Font0
  995.   dc.w 1005
  996.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  997. RateVisual
  998.   dc.l 0,SetRate
  999.  
  1000. RateGadgetTags
  1001.   dc.l GTSL_Min,40
  1002.   dc.l GTSL_Max,400
  1003.   dc.l GTSL_MaxLevelLen,6
  1004.   dc.l GTSL_LevelPlace,PLACETEXT_RIGHT
  1005.   dc.l GTSL_LevelFormat,RateString
  1006.   dc.l GTSL_Level
  1007.   dc.w 0
  1008. InitialRate
  1009.   dc.w 0
  1010.   dc.l GA_RelVerify,1
  1011.   dc.l TAG_DONE
  1012.  
  1013. PitchGadget
  1014.   dc.w 264,90,96,12
  1015.   dc.l PitchName,Font0
  1016.   dc.w 1006
  1017.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1018. PitchVisual
  1019.   dc.l 0,SetPitch
  1020.  
  1021. PitchGadgetTags
  1022.   dc.l GTSL_Min,65
  1023.   dc.l GTSL_Max,320
  1024.   dc.l GTSL_MaxLevelLen,5
  1025.   dc.l GTSL_LevelPlace,PLACETEXT_RIGHT
  1026.   dc.l GTSL_LevelFormat,PitchString
  1027.   dc.l GTSL_Level
  1028.   dc.w 0
  1029. InitialPitch
  1030.   dc.w 0
  1031.   dc.l GA_RelVerify,1
  1032.   dc.l TAG_DONE
  1033.  
  1034. F0EnthusiasmGadget
  1035.   dc.w 85,90,90,12
  1036.   dc.l F0EnthusiasmName,Font0
  1037.   dc.w 1007
  1038.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1039. F0EnthusiasmVisual
  1040.   dc.l 0,SetF0Enthusiasm
  1041.  
  1042. F0GadgetTags
  1043.   dc.l GTSL_Min,0
  1044.   dc.l GTSL_Max,255
  1045.   dc.l GTSL_MaxLevelLen,3
  1046.   dc.l GTSL_LevelPlace,PLACETEXT_RIGHT
  1047.   dc.l GTSL_LevelFormat,TriNumberString
  1048.   dc.l GTSL_Level
  1049.   dc.b 0,0,0
  1050. InitialF0
  1051.   dc.b 0
  1052.   dc.l GA_RelVerify,1
  1053.   dc.l TAG_DONE
  1054.  
  1055. F0PerturbGadget
  1056.   dc.w 85,105,90,12
  1057.   dc.l F0PerturbName,Font0
  1058.   dc.w 1008
  1059.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1060. F0PerturbVisual
  1061.   dc.l 0,SetF0Perturb
  1062.  
  1063. F1AdjGadget
  1064.   dc.w 54,75,50,12
  1065.   dc.l F1AdjName,Font0
  1066.   dc.w 1009
  1067.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1068. F1AdjVisual
  1069.   dc.l 0,SetF1Adj
  1070.  
  1071. F123AdjGadgetTags
  1072.   dc.l GTSL_Min,-20
  1073.   dc.l GTSL_Max,20
  1074.   dc.l GTSL_MaxLevelLen,3
  1075.   dc.l GTSL_LevelPlace,PLACETEXT_RIGHT
  1076.   dc.l GTSL_LevelFormat,SignedBiNumberString
  1077.   dc.l GTSL_Level
  1078.   dc.b 0,0,0
  1079. InitialF123Adj
  1080.   dc.b 0
  1081.   dc.l GA_RelVerify,1
  1082.   dc.l TAG_DONE
  1083.  
  1084. F2AdjGadget
  1085.   dc.w 190,75,50,12
  1086.   dc.l F2AdjName,Font0
  1087.   dc.w 1010
  1088.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1089. F2AdjVisual
  1090.   dc.l 0,SetF2Adj
  1091.  
  1092. F3AdjGadget
  1093.   dc.w 326,75,50,12
  1094.   dc.l F3AdjName,Font0
  1095.   dc.w 1011
  1096.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1097. F3AdjVisual
  1098.   dc.l 0,SetF3Adj
  1099.  
  1100. A1AdjGadget
  1101.   dc.w 54,60,50,12
  1102.   dc.l A1AdjName,Font0
  1103.   dc.w 1012
  1104.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1105. A1AdjVisual
  1106.   dc.l 0,SetA1Adj
  1107.  
  1108. A123AdjGadgetTags
  1109.   dc.l GTSL_Min,-32
  1110.   dc.l GTSL_Max,31
  1111.   dc.l GTSL_MaxLevelLen,3
  1112.   dc.l GTSL_LevelPlace,PLACETEXT_RIGHT
  1113.   dc.l GTSL_LevelFormat,SignedBiNumberString
  1114.   dc.l GTSL_Level
  1115.   dc.b 0,0,0
  1116. InitialA123Adj
  1117.   dc.b 0
  1118.   dc.l GA_RelVerify,1
  1119.   dc.l TAG_DONE
  1120.  
  1121. A2AdjGadget
  1122.   dc.w 190,60,50,12
  1123.   dc.l A2AdjName,Font0
  1124.   dc.w 1013
  1125.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1126. A2AdjVisual
  1127.   dc.l 0,SetA2Adj
  1128.  
  1129. A3AdjGadget
  1130.   dc.w 326,60,50,12
  1131.   dc.l A3AdjName,Font0
  1132.   dc.w 1014
  1133.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1134. A3AdjVisual
  1135.   dc.l 0,SetA3Adj
  1136.  
  1137. AVBiasGadget
  1138.   dc.w 85,120,90,12
  1139.   dc.l AVBiasName,Font0
  1140.   dc.w 1015
  1141.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1142. AVBiasVisual
  1143.   dc.l 0,SetAVBias
  1144.  
  1145. AFBiasGadget
  1146.   dc.w 264,120,96,12
  1147.   dc.l AFBiasName,Font0
  1148.   dc.w 1016
  1149.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1150. AFBiasVisual
  1151.   dc.l 0,SetAFBias
  1152.  
  1153. CentralizeGadget
  1154.   dc.w 264,135,96,12
  1155.   dc.l CentralizeName,Font0
  1156.   dc.w 1017
  1157.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1158. CentralizeVisual
  1159.   dc.l 0,SetCentralize
  1160.  
  1161. CentralizeGadgetTags
  1162.   dc.l GTSL_Min,0
  1163.   dc.l GTSL_Max,100
  1164.   dc.l GTSL_MaxLevelLen,3
  1165.   dc.l GTSL_LevelPlace,PLACETEXT_RIGHT
  1166.   dc.l GTSL_LevelFormat,TriNumberString
  1167.   dc.l GTSL_Level
  1168.   dc.b 0,0,0
  1169. InitialCentralize
  1170.   dc.b 0
  1171.   dc.l GA_RelVerify,1
  1172.   dc.l TAG_DONE
  1173.  
  1174. CentphonGadget
  1175.   dc.w 85,135,90,12
  1176.   dc.l CentphonName,Font0
  1177.   dc.w 1018
  1178.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1179. CentphonVisual
  1180.   dc.l 0,SetCentphon
  1181.  
  1182. CentphonGadgetTags
  1183.   dc.l GTCY_Labels,CentphonLabels
  1184.   dc.l TAG_DONE
  1185.  
  1186. CentphonLabels
  1187.   dc.l CentphonNone,CentphonIY,CentphonIH,CentphonEH,CentphonAE
  1188.   dc.l CentphonAA,CentphonAH,CentphonAO,CentphonOW,CentphonUH
  1189.   dc.l CentphonER,CentphonUW,0
  1190.  
  1191. ArticulateGadget
  1192.   dc.w 264,150,96,12
  1193.   dc.l ArticulateName,Font0
  1194.   dc.w 1019
  1195.   dc.l PLACETEXT_LEFT!NG_HIGHLABEL
  1196. ArticulateVisual
  1197.   dc.l 0,SetArticulate
  1198.  
  1199. ArticulateGadgetTags
  1200.   dc.l GTSL_Min,0
  1201.   dc.l GTSL_Max,255
  1202.   dc.l GTSL_MaxLevelLen,3
  1203.   dc.l GTSL_LevelPlace,PLACETEXT_RIGHT
  1204.   dc.l GTSL_LevelFormat,TriNumberString
  1205.   dc.l GTSL_Level
  1206.   dc.b 0,0,0
  1207. InitialArticulate
  1208.   dc.b 0
  1209.   dc.l GA_RelVerify,1
  1210.   dc.l TAG_DONE
  1211.  
  1212. ResetGadget
  1213.   dc.w 14,150,160,12
  1214.   dc.l ResetName,Font0
  1215.   dc.w 1020
  1216.   dc.l PLACETEXT_IN
  1217. ResetVisual
  1218.   dc.l 0,ResetValues
  1219.  
  1220. ResetCycleTags
  1221.   dc.l GTCY_Active
  1222.   dc.w 0
  1223. CycleValueW
  1224.   dc.w 0
  1225.   dc.l TAG_DONE
  1226.  
  1227. ResetSliderTags
  1228.   dc.l GTSL_Level
  1229.   dc.w 0
  1230. SliderValueW
  1231.   dc.b 0
  1232. SliderValueB
  1233.   dc.b 0
  1234.   dc.l TAG_DONE
  1235.  
  1236.   SECTION 2,BSS
  1237.  
  1238. Values        ds.b 88
  1239. ValuesEnd
  1240.  
  1241.   END
  1242.